table of contents
AIO_READ(3) | Manuel du programmeur Linux | AIO_READ(3) |
NOM¶
aio_read - Lecture asynchrone
SYNOPSIS¶
#include <aio.h>
int aio_read(struct aiocb *aiocbp);
Effectuez l'édition des liens avec l'option -lrt.
DESCRIPTION¶
La fonction aio_read() sollicite un « n = read(fd, buf, count) » asynchrone avec fd, buf, count donnés respectivement par aiocbp->aio_fildes, aiocbp->aio_buf et aiocbp->aio_nbytes. L'état de retour n peut être récupéré à la fin avec aio_return(3).
La donnée est lue en commençant au décalage absolu du fichier aiocbp->aio_offset, quelle que soit la position actuelle du pointeur sur le fichier. Après cette requête, la valeur de la position courante du pointeur du fichier est indéfinie.
« Asynchrone » signifie que cet appel s'achève aussitôt que la requête a été mise dans la file d'attente ; la lecture peut être ou ne pas être achevée lorsque l'appel s'achève. On peut tester cet achèvement en utilisant aio_error(3).
Si _POSIX_PRIORITIZED_IO est définie et si le fichier le supporte, l'opération asynchrone est soumise à une priorité égale à celle du processus appelant moins aiocbp->aio_reqprio.
Le membre aiocbp->aio_lio_opcode est ignoré.
Aucune donnée n'est lue dans un fichier régulier au-delà de son décalage maximum.
VALEUR RENVOYÉE¶
En cas de réussite, 0 est renvoyé. En cas d'erreur, la requête n'est pas mise dans la file d'attente, -1 est renvoyé et errno est définie en conséquence. Si une erreur est détectée plus tard, elle sera signalée via aio_return(3) (état de retour -1) et aio_error(3) (état d'erreur : tout ce qu'on veut, récupéré dans errno, comme EBADF).
ERREURS¶
- EAGAIN
- Ressources insuffisantes.
- EBADF
- aio_fildes n'est pas un descripteur de fichier valable ouvert en lecture.
- EINVAL
- Une ou plusieurs valeurs parmi aio_offset, aio_reqprio, aio_nbytes ne sont pas valables.
- ENOSYS
- La fonction n'est pas implémentée sur ce système.
- EOVERFLOW
- Le fichier est un fichier régulier, nous avons commencé la lecture avant la fin de fichier et voulons au moins un octet, mais la position de départ a dépassé le décalage maximum du fichier.
CONFORMITɶ
POSIX.1-2001.
NOTES¶
C'est une bonne idée de mettre à zéro le bloc de contrôle avant de l'utiliser. Ce bloc de contrôle ne doit pas être modifié pendant l'opération de lecture. Il ne faut pas accéder à la zone tampon à lire pendant l'opération, sinon des résultats indéfinis peuvent survenir. Les zones mémoires atteintes doivent rester valides.
VOIR AUSSI¶
aio_cancel(3), aio_error(3), aio_fsync(3), aio_return(3), aio_suspend(3), aio_write(3)
COLOPHON¶
Cette page fait partie de la publication 3.23 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse <URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <URL:http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <URL:http://alioth.debian.org/projects/perkamon/>.
Alain Portal <URL:http://manpagesfr.free.fr/> (2004-2006). Florentin Duneau et l'équipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en écrivant à <perkamon-l10n-fr@lists.alioth.debian.org>.
Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».
14 novembre 2003 |